#!/bin/bash

##
##  Mach7: Pattern Matching Library for C++
##
##  Copyright 2011-2013, Texas A&M University.
##  Copyright 2014 Yuriy Solodkyy.
##  All rights reserved.
##
##  Redistribution and use in source and binary forms, with or without
##  modification, are permitted provided that the following conditions are met:
##
##      * Redistributions of source code must retain the above copyright
##        notice, this list of conditions and the following disclaimer.
##
##      * Redistributions in binary form must reproduce the above copyright
##        notice, this list of conditions and the following disclaimer in the
##        documentation and/or other materials provided with the distribution.
##
##      * Neither the names of Mach7 project nor the names of its contributors
##        may be used to endorse or promote products derived from this software
##        without specific prior written permission.
##
##  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
##  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
##  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY
##  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
##  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
##  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
##  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
##  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

##
## Script for testing C++ pattern matching library
##
## \author Yuriy Solodkyy <yuriy.solodkyy@gmail.com>
##
## \see https://parasol.tamu.edu/mach7/
## \see https://github.com/solodon4/Mach7
## \see https://github.com/solodon4/SELL
##
## Version 1.0 from 30th April 2011
##
## Usage: test-pm-daily.bsh
##

# Show usage information by dumping the above comment when --help was specified
if [ "$1" == "--help" ]
then
    grep --color "^##" $0
    exit
fi

# Prepare log file
#testlog=`date +"%F-%H-%M"`
#testlog="all-${app_name}-$testlog.log"
#logfile="$testlog"
logfile="test-pm-daily.log"
results="test-pm-daily.txt"
line===================================
echo Test from `date +"%F %R"` > $logfile
echo Test from `date +"%F %R"` > $results

echo Building executables using G++ ...
echo [ G++ ] ========================================= >> $logfile
make >> $logfile 2>&1
echo Building OCaml sources ...
echo [ OCaml ] ======================================= >> $logfile
ocamlopt.opt unix.cmxa -o cmp_ocaml.exe cmp_ocaml.ml   >> $logfile 2>&1

# -------------------------------------------------------------------------------

echo Running synthetic.exe
echo [ synthetic.exe ] ========================== | tee -a $logfile >> $results
# synthetic.exe                  | tee -a $logfile | grep "L.:" >> $results
echo Running generic_select_random.exe
echo [ generic_select_random.exe ] ============== | tee -a $logfile >> $results
generic_select_random.exe       | tee -a $logfile | grep "L.:" >> $results
echo Running synthetic_select_random.exe
echo [ synthetic_select_random.exe ] ============ | tee -a $logfile >> $results
synthetic_select_random.exe     | tee -a $logfile | grep "L.:" >> $results
echo Running synthetic_select.exe
echo [ synthetic_select.exe ] =================== | tee -a $logfile >> $results
synthetic_select.exe            | tee -a $logfile | grep "L.:" >> $results
echo Running hierarchy2.exe
echo [ hierarchy2.exe ] ========================= | tee -a $logfile >> $results
hierarchy2.exe                  | tee -a $logfile | grep "L.:" >> $results
echo Running generic_select_kind.exe
echo [ generic_select_kind.exe ] ================ | tee -a $logfile >> $results
generic_select_kind.exe         | tee -a $logfile | grep "L.:" >> $results
echo Running synthetic_select_kind.exe
echo [ synthetic_select_kind.exe ] ============== | tee -a $logfile >> $results
synthetic_select_kind.exe       | tee -a $logfile | grep "L.:" >> $results
echo Running type_switch.exe
echo [ type_switch.exe ] ======================== | tee -a $logfile >> $results
type_switch.exe                 | tee -a $logfile | grep "L.:" >> $results
echo Running ocaml_cmp.exe
echo [ ocaml_cmp.exe ] ========================== | tee -a $logfile >> $results
ocaml_cmp.exe                   | tee -a $logfile | grep ":"   >> $results
echo Running ocaml_cmp_kind.exe
echo [ ocaml_cmp_kind.exe ] ===================== | tee -a $logfile >> $results
ocaml_cmp_kind.exe              | tee -a $logfile | grep ":"   >> $results
echo Running numbers.exe
echo [ numbers.exe ] ============================ | tee -a $logfile >> $results
numbers.exe                     | tee -a $logfile | grep "%%"  >> $results 

